/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeComboTree.js<br>
 * 日期：2016年8月24日<br>
 * 作者: 杨顺强<br>
 * 功能：把选择控件和下拉树结合起来<br>
 *
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeComboTree<br>
 * 类型功能：组合数类声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositeComboTree = Rainier.UI.V2.UIComposite.extend({

    NAME : "Rainier.UI.V2.UICompositeComboTree",

    /**
     * 函数名称：Rainier.UI.V2.UICompositeComboTree.init<br>
     * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		:	
	 * {
	 * 		url: 'get_data.php',	//数据获取
	 * 		required: true			//输入区域是否必填
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
     */
    init : function(objParentComposite,objProperties){
        //使用父类初始化子类对象
        this._super(objParentComposite,objProperties);
    },

    /**
     * 函数名称：Rainier.UI.V2.UICompositeComboTree.appendEventHandler<br>
     * 函数功能：添加事件代理<br>
     * 参数输入：无<br>
     * 参数输出：无<br>
     * 函数返回：无<br>
     * 异常信息：<br>
     */
	appendEventHandler : function(){		
		this.m_aEventList = ['onShowPanel',
		                     'onHidePanel',
		                     'onChange',
		                     'onResize',
		                     'onClickButton',
		                     'onClickIcon',
		                     'onBeforeValidate',
		                     'onValidate',
		                     'onClick',
		                     'onDblClick',
		                     'onBeforeLoad',
		                     'onLoadSuccess',
		                     'onLoadError',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeCheck',
		                     'onCheck',
		                     'onBeforeSelect',
		                     'onSelect',
		                     'onContextMenu',
		                     'onBeforeDrag',
		                     'onStartDrag',
		                     'onStopDrag',
		                     'onDragEnter',
		                     'onDragOver',
		                     'onDragLeave',
		                     'onBeforeDrop',
		                     'onDrop',
		                     'onBeforeEdit',
		                     'onAfterEdit',
		                     'onCancelEdit',
		                     ];
		this._super();
	},
	

	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.createComposite<br>
	 * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    createComposite : function(eleParent){
        this._super(eleParent);
        var newEle = this.CreateElement("input",this.m_objProperties.id);
        eleParent.append(newEle);
        newEle.combotree(this.m_objProperties);
    },

    /**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.callUiMethod<br>
	 * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod : 方法名称
	 * 参数输入：objArgs : 更具方法名称，在该类方法中查找对应参数，或easyUI官网对应组件的方法中检索
	 * 函数返回：根据调用方法，返回相应的数值<br>
	 * 异常信息：无<br>
	 */
    callUiMethod : function(sMethod,objArgs){
        return this.getElement().combotree(sMethod,objArgs);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.options<br>
	 * 函数功能：返回选项（options）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：返回选择的对象<br>
	 * 异常信息：无<br>
	 */
    options : function(){
        return this.getElement().combotree('options');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.tree<br>
	 * 函数功能：返回树（tree）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    tree : function(){
        return this.getElement().combotree('tree');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeCombo.loadData<br>
	 * 函数功能：记住本地的树（tree）数据。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    loadData : function(aData){
        return this.getElement().combotree('loadData',aData);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.reload<br>
	 * 函数功能：再一次请求远程的树（tree）数据。传 'url' 参数来重写原始的 URL 值。<br>
	 * 参数输入：url:'get_data.php'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    reload : function(url){
        return this.getElement().combotree('reload',url);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.clear<br>
	 * 函数功能：清除组件的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    clear : function(){
        return this.getElement().combotree('clear');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.setValue<br>
	 * 函数功能：设置组件的值。<br>
	 * 参数输入：sValue: 6<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */   
    setValue : function(sValue){
        return this.getElement().combotree('setValue',sValue);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.setValues<br>
	 * 函数功能：设置组件的值的数组。<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */   
    setValues : function(aValues){
        return this.getElement().combotree('setValues',aValues);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.panel<br>
	 * 函数功能：返回下拉面板对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	panel : function(){
		return this.getElement().combotree('panel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.textbox<br>
	 * 函数功能：返回文本框对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	textbox : function(){
		return this.getElement().combotree('textbox');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.destroy<br>
	 * 函数功能：销毁组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	destroy : function(){
		return this.getElement().combotree('destroy');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.resize<br>
	 * 函数功能：调整组件的宽度。<br>
	 * 参数输入：sWideh:100<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resize : function(sWideh){
		return this.getElement().combotree('resize',sWideh);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.showPanel<br>
	 * 函数功能：显示下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	showPanel : function(){
		return this.getElement().combotree('showPanel');
	},
	 
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.hidePanel<br>
	 * 函数功能：隐藏下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	hidePanel : function(){
		return this.getElement().combotree('hidePanel');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.disable<br>
	 * 函数功能：禁用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disable : function(){
		return this.getElement().combotree('disable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.enable<br>
	 * 函数功能：启用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enable : function(){
		return this.getElement().combotree('enable');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.readonly<br>
	 * 函数功能：启用/禁用只读模式。该方法自版本 1.3.3 起可用。<br>
	 * 参数输入：mode: true/false<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	readonly : function(mode){
		return this.getElement().combotree('readonly',mode);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.validate<br>
	 * 函数功能：验证输入的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	validate : function(){
		return this.getElement().combotree('validate');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.isValid<br>
	 * 函数功能：调用 validate 方法并且返回验证结果，true 或者 false。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：true/false : boolean 类型的值true 表示进行了校验，false表示当前组件未进行校验<br>
	 * 异常信息：无<br>
	 */
	isValid : function(){
		return this.getElement().combotree('isValid');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.reset<br>
	 * 函数功能：重置组件的值。该方法自版本 1.3.2 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	reset : function(){
		return this.getElement().combotree('reset');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.getText<br>
	 * 函数功能：获取输入的文本。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getText : function(){
		return this.getElement().combotree('getText');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.setText <br>
	 * 函数功能：设置文本值。<br>
	 * 参数输入：sText： 123<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	setText : function(sValue){
		return this.getElement().combotree('setText',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.getValues<br>
	 * 函数功能：获取组件的值的数组。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValues : function(){
		return this.getElement().combotree('getValues');
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.getValue<br>
	 * 函数功能：设置组件的值<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getValue : function(){
		return this.getElement().combotree('getValue');
	},
	
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.button<br>
	 * 函数功能：返回按钮对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：当前按钮对象<br>
	 * 异常信息：无<br>
	 */
	button : function(){
		return this.getElement().combotree('button');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.initValue<br>
	 * 函数功能：设置初始value值。<br>
	 * 参数输入：sValue：'sun'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	initValue : function(sValue){
		return this.getElement().combotree('initValue',sValue);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.getIcon<br>
	 * 函数功能：获取具体图表对象。<br>
	 * 参数输入：nIndex：5<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	getIcon : function(nIndex){
		return this.getElement().combotree('getIcon',nIndex);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.enableValidation<br>
	 * 函数功能：启用验证。该方法自版本 1.3.4 起可用。。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	enableValidation : function(){
		return this.getElement().combotree('enableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.disableValidation<br>
	 * 函数功能：禁用验证。该方法自版本 1.3.4 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	disableValidation : function(){
		return this.getElement().combotree('disableValidation');
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeComboTree.resetValidation<br>
	 * 函数功能：重置验证<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	resetValidation : function(){
		return this.getElement().combotree('resetValidation');
	}
});
